package ch13.streams;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import java.util.stream.Stream;

public class CountLongWords {
    public static void main(String[] args) throws IOException {
        var contents = Files.readString(
            Path.of("ch09/set/alice30.txt")
        );

        // P代表不是后面的类别
        // L代表Unicode字符集的"字母"类别
        // +代表至少一个
        // PL+代表一个或者多个不是"字母"类别的字符，其实就是如果个空格
        var words = List.of(contents.split("\\PL+"));

        // 如何做
        long count = 0;
        for (var w : words) {
            if (w.length() > 12) {
                count++;
            }
        }
        System.out.println(count);

        // 做什么
        count = words.stream().filter(w -> w.length() > 12).count();
        System.out.println(count);

        // 并行处理
        count = words.parallelStream().filter(w -> w.length() > 12).count();
        System.out.println(count);
    }
}
